/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package moviefansystem;

import java.util.ArrayList;

/**
 *
 * @author Frank Eggink
 */
public interface IDatabase {

    //klant gedeelte
    /**
     * functie om klant toe te voegen aan de Database
     * @param k klant object om toe te voegen
     * @return -1 indine niet gelukt, getal >0 indien wel 
     */
    int voegNieuweKlantToe(Klant k);
    Klant zoekKlant(int klantnummer); 
    
    boolean maakNieuweReservering(int klantnummer, int filmId); //TODO nog aanpassen
    boolean maakNieuweVerhuurd(int klantnummer, int filmId); //Todo Nog aanpassen
    boolean verwijderReservering(int klantnummer, int filmId); //TODO nog aanpassen
    
    ArrayList<Film> getPersonlijkeItemsGehuurd(Klant klant);//return een arraylist met films die ooit verhuurd zijn aan klant
    ArrayList<Film> getPersonlijkeItemsGereseveerd(Klant klant);//return een arralist met films die nu gereseveerd zijn.
    ArrayList<Film> getPersonlijkeItemsInBezit(Klant klant);//Return araylist met films die klant nu in bezit heeft.
    ArrayList<Film> getAlleFilms();//return arraylist met Alle films in het filiaal.
     
    //film gedeelte
    /**
     * functie om film toe te voegen aan database
     * @param film object die toegevoegd moet worden
     * @return -1 indien niet gelukt, indien wel dan een getal > 0
     */
    int voegNieuweFilmToe(Film film);
    Film zoekFilm(int artikelNummer);
    ArrayList<Film> zoekFilm(String omschrijving); //deze methode geeft een lijst terug met alle films, waarin de omschrijving voorkomt in de titel
    
    boolean leenItemUit(int klantnummer, int filmId);
    boolean neemItemIN(int klantnummer, int filmId);
   
    
    
    //overzichten
    boolean toonFinancieelOverzicht();
}
